<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    
  </style>
</head>
<body>
  
</body>
<script>

  // Promise的本质，就是一个状态管理器，通过状态值记录异步的状态
  // 正在进行时（pending）：还没执行结束
  // 成功（已完成）（fulfilled）：已经执行结束，且成功状态
  // 失败（未完成）（rejected）：已经执行结束，且失败状态
  // 约束：状态的变化只能从pending到fulfilled，或从pending到rejected


  console.log(1);

  const p = new Promise((resolve, reject)=>{
    // 正在进行时...（同步）
    console.log(2);
    // 表示成功时要执行的功能
    resolve("hello");
    // 表示失败时要执行的功能
    reject("world");
  });
  // 用来向resolve转入一个功能
  p.then((res)=>{
    console.log(3);
    console.log(res);
  });
  // 用来向reject转入一个功能
  p.catch((code)=>{
    console.log(4);
    console.log(code);
  });

  console.log(5);

  // 1,2,5,3,hello
  
</script>
</html>